---
title: 将你的 Astro 网站部署到 Space
description: 如何在 Space 中构建一个 Astro 网站
type: deploy
i18nReady: true
---
import InstallGuideTabGroup from '~/components/TabGroup/InstallGuideTabGroup.astro';
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'

[Deta Space](https://deta.space/developers) 是一个存在于云端的个人电脑，也被称作「个人云」。你可以在自己的「Space」中构建和运行应用程序，你也可以发布构建的应用程序，并让全世界的人使用。

本指南提供了手把手在 Space 中构建网站的说明。这同时支持静态和服务端渲染（使用  [`@astrojs/node` 适配器](/zh-cn/guides/integrations-guide/node/)）的 Astro 网站。

:::note
以下的教程不适用于 v3.0+ 的 Astro 项目，因为 Space 目前只[支持 Node.js 16](https://deta.space/docs/en/build/quick-starts/node/)。
:::

## 前期准备

为了将你的 Astro 网站部署到 Space，首先得确保你已经：

- 创建了一个 [Space 账号](https://deta.space).
- 安装了 [Space CLI](https://deta.space/docs/en/build/reference/cli) 并登录。

在 Astro 项目的目录**内**创建一个 Space 项目，然后运行命令行工具（CLI）并按照屏幕上的指示操作。

```bash
space new
```

:::note
Space CLI 将尝试自动检测你的应用程序配置。然后接受建议的配置后，根据你想要部署的 Astro 应用程序类型，按照后续的说明进行操作。
:::

## 项目配置

### 静态站点

请按照以下步骤修改由 Space CLI 生成的项目根目录下的 `Spacefile` 文件：

1. 将引擎 (engine) 更改为 `static`。
2. 将 Astro 的构建命令添加到 `commands` 列表中。
3. 基于 Astro 生成的 `dist` 目录运行服务。

```yaml title="Spacefile" {6,8,9}
# Spacefile 文档: https://deta.space/docs/en/build/reference/spacefile
v: 0
micros:
  - name: static-astro-in-space
    src: .
    engine: static
    commands:
      - npm run build
    serve: dist
```

### 服务端渲染站点

请对 Space CLI 生成的项目根目录下的 `Spacefile` 文件，进行以下更改：

1. 配置 `nodejs16` 引擎。
2. 添加 `build` 命令。
3. 包含由 Astro 生成的 `dist` 目录。
4. 运行 node 命令。

```yaml title="Spacefile" {6,8,10,11}
# Spacefile 文档: https://deta.space/docs/en/build/reference/spacefile
v: 0
micros:
  - name: ssr-astro-in-space
    src: .
    engine: nodejs16
    commands:
      - npm run build
    include:
      - dist
    run: "node ./dist/server/entry.mjs"
```

## 如何部署

通过以下命令来部署你的项目：

```bash
space push
```

这将运行构建过程并创建一个新的 [Space 应用实例](https://deta.space/docs/en/build/fundamentals/development/builder-instance#for-testing)，以便你可以通过该实例访问你的 Astro 应用。

默认情况下，Space 应用是私有的，只能由你本人访问。

如果你希望将你的应用程序提供给他人使用，你可以使用 [公共路由](https://deta.space/docs/en/build/spacefile#public_routes) 来使应用程序的某些部分对公众可见。或者，你也可以创建一个 [发布](https://deta.space/docs/en/publish/releasing#releases)，让他人将你的应用程序安装到他们自己的个人云中。

## 下一步操作

-  [为 Space 项目添加更多计算资源](https://deta.space/docs/en/build/fundamentals/the-space-runtime/micros#adding-a-micro)
-  [为 Space 项目存储数据](https://deta.space/docs/en/build/fundamentals/data-storage#content)
-  [启动你的 Space 应用](https://deta.space/docs/en/publish/releasing#releases)

## 示例

-  [在 Space 中的 Astro 应用](https://github.com/BogDAAAMN/astro-in-space) - GitHub
